import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.2')

from google.appengine.ext.webapp import template

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class HelloHandler(webapp.RequestHandler):
    def get(self):
        template_values = {}
        path = os.path.join(os.path.dirname(__file__), 'hello.html')
        self.response.out.write(template.render(path, template_values))

class GoodbyeHandler(webapp.RequestHandler):
  def get(self):
    self.response.out.write('Goodbye app engine world!')

class WrongAnswers:
    def __init__(self, question, guess, correct):
        self.question = question
        self.guess = guess
        self.correct = correct

class GradeQuizHandler(webapp.RequestHandler):
  def get(self):
    addition_guess = self.request.get('addition')
    template_values = {'wrong_answers': [], 'name' : self.request.get('name')}
    if addition_guess != "7":
        template_values['wrong_answers'].append(WrongAnswers("3 + 4", addition_guess, 7))

    path = os.path.join(os.path.dirname(__file__), 'grade_quiz.html')
    self.response.out.write(template.render(path, template_values))

class QuizHandler(webapp.RequestHandler):
  def get(self):
    template_values = {'name' : self.request.get('name') }
    path = os.path.join(os.path.dirname(__file__), 'quiz.html')
    self.response.out.write(template.render(path, template_values))

class DiceHandler(webapp.RequestHandler):
  def get(self):
    times = self.request.get('times')

    import random

    DICE_ROLLS = 1

    # Simulate rolling two dice.
    dice_1 = random.randint(1, 6)
    dice_2 = random.randint(1, 6)
    self.response.out.write("Rolls:" + str(dice_1) + " " + str(dice_2) + "<br>")
    if dice_1 == 1 and dice_2 == 1:
      self.response.out.write("Got snake eyes!" + "<br>")
    elif dice_1 == dice_2:
      self.response.out.write("got double " + str(dice_1) + "'s" + "<br>")

    while dice_1 != 6 or dice_2 != 6:
      DICE_ROLLS += 1
      # Simulate rolling two dice.
      dice_1 = random.randint(1, 6)
      dice_2 = random.randint(1, 6)
      self.response.out.write("Rolls:" + str(dice_1) + " " + str(dice_2) + "<br>")
      if dice_1 == 1 and dice_2 == 1:
        self.response.out.write("Got snake eyes!" + "<br>")
      elif dice_1 == dice_2:
        self.response.out.write("got double " + str(dice_1) + "'s" + "<br>")
                	
    self.response.out.write("Rolled the dice " + str(DICE_ROLLS) + " times" + "<br>")
       

    self.response.out.write('Hello ' + times + '!' + "<br>")

def main():
  application = webapp.WSGIApplication([('/hello.*', HelloHandler),
                                        ('/goodbye.*', GoodbyeHandler),
                                        ('/dice.*', DiceHandler),
                                        ('/quiz', QuizHandler),
                                        ('/grade_quiz', GradeQuizHandler)],
                                        debug=True)
  run_wsgi_app(application)

if __name__ == '__main__':
  main()
